<script>on mouseDownask "Please enter your name."put it into field "user" of card report-- ΓÇóΓÇóΓÇó change unlimited to # minutes to put a time limit on test-- be sure to change background of questions and below also.answer "You have unlimited minutes to take this test" with "OK"end mouseDownon mouseUpglobal time1,score,check2,ok,questlistset the cursor to 4put empty into okput empty into scoreput empty into check2put empty into field QMissed of card reportget the long timeput it into field "Start" of Card "Report"convert it to seconds-- ΓÇóΓÇóΓÇó change 30 in next line to # of minutes desired for time limitadd 30*60 to itput it into time1-- put questlist into message -- for debug onlyvisual effect dissolve to blackvisual effect dissolve-- go card "#1" -- for debug onlyget item 1 of questlistgo card itend mouseUp</script>
</part>
<part>
<id>5</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <false /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>58</left>
<top>16</top>
<right>458</right>
<bottom>110</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>22</textSize>
<textStyle>plain</textStyle>
<textHeight>29</textHeight>
<name>Title</name>
<script></script>
</part>
<name>intro</name>
<script>on buildList -- ••• rename to buildList1 if using sequential questions-- or to buildList if using randomly-generated questionsglobal questlist, rightone, lockkey, questans, questkeyglobal sky1, sky2, sky3, sky4, sky5, sky6 -- used for saved ans key-- initializationset the cursor to 4-- •••questgrp contains the number of questions in each question group-- and is used to generate random questions, one from each group.-- Note that the question groups MUST BE sequential in order for this-- to work. That is, group 1 must be the first 10 questions, group 2-- must be the next 14 questions, and so on.put "21,11,11,11,11,11,11,11,11,11," into questgrpput "11,11,11,11,11,11,16,11,11,11," after questgrpput "11,11,11,11,11" after questgrp-- ••• The number of commas in questans and questkey must be equal to-- number of questions in each test minus one. For example, for a-- 25-question test, there are 24 commas.put ",,,,,,,,,,,,,,,,,,,,,,,," into questansput ",,,,,,,,,,,,,,,,,,,,,,,," into questkeyput empty into questlistput 0 into startgroupput empty into sky1put empty into sky2put empty into sky3put empty into sky4put empty into sky5put empty into sky6set lockscreen to true-- generate the questions from subgroups randomlyrepeat with i = 1 to number of items of questgrpput startgroup into thisquestadd the random of item i of questgrp to thisquestput questlist & "#" & thisquest & "," into questlistadd item i of questgrp to startgroupend repeatdelete last character of questlist-- ••• generate the answer key for these questions. this currently-- only handles up to first 51 questions.repeat with i = 1 to number of items of questlistif i > 51 then exit repeatput item i of questlist into thisquestgo to card thisquest-- ••• You can put the card # or the subelement # or question #-- as question #in keyput "#" & i into x -- question # option-- put the short name of this card into x -- card # option-- put first word of field "Q1" into x -- subelement # optionput first word of field "Q1" into y -- used for answer keyif i < 18 thenput sky1&x&"("&y&")"&return into sky1put sky2&rightone&return into sky2else if i < 35 thenput sky3&x&"("&y&")"&return into sky3put sky4&rightone&return into sky4elseput sky5&x&"("&y&")"&return into sky5put sky6&rightone&return into sky6end ifend repeatgo to card savedscoresput sky1 into field key1put sky2 into field key2put sky3 into field key3put sky4 into field key4put sky5 into field key5put sky6 into field key6-- prevent buildList from being called again immediatelyput true into lockkeygo to first cardset lockscreen to falseend buildListon buildList1 -- ••• rename to buildList for sequential questions or to-- buildList1 for randomly-generated questionsglobal questlist, rightone, lockkey, questans, questkey, thiscountglobal sky1, sky2, sky3, sky4, sky5, sky6 -- used for saved ans key-- initializationset the cursor to 4-- ••• be sure that the group number of each question card matches the-- question number. For example, question #1 is group 1, question-- #2 is group 2, and so on.put empty into questlistput empty into questansput empty into questkeyput empty into sky1put empty into sky2put empty into sky3put empty into sky4put empty into sky5put empty into sky6set lockscreen to truerepeat with i = 1 to number of cards of bkgnd Testput "#" & i & "," after questlistput "," after questansput "," after questkeyend repeatdelete last character of questlistdelete last character of questansdelete last character of questkey-- ••••• The generation of an answer key to enable the "report card"-- to function works for sequentially answered questions; it-- DOES NOT generate the printable answser sheet that uses the-- "sky#" variables and the "field Key#" fields.repeat with i = 1 to number of items of questlist-- if i > 51 then exit repeatput item i of questlist into thisquestput i into thiscountgo to card thisquest-- ••• You can put the card # or the subelement # or question # ¬-- as question #in key-- put "#" & i into x -- question # option-- put the short name of this card into x -- card # option-- put first word of field "Q1" into x -- subelement # option-- put first word of field "Q1" into y -- used for answer key-- if i < 18 then-- put sky1&x&"("&y&")"&return into sky1-- put sky2&rightone&return into sky2-- else if i < 35 then-- put sky3&x&"("&y&")"&return into sky3-- put sky4&rightone&return into sky4-- else-- put sky5&x&"("&y&")"&return into sky5-- put sky6&rightone&return into sky6-- end ifend repeat-- go to card savedscores-- put sky1 into field key1-- put sky2 into field key2-- put sky3 into field key3-- put sky4 into field key4-- put sky5 into field key5-- put sky6 into field key6-- prevent buildList from being called again immediatelyput true into lockkeygo to first cardset lockscreen to falseend buildList1</script>